
package com.zhike.common.dto;

/**
 * 封装用户注销登陆时提交的数据的类.
 *
 * @author Jack Jiang(http://www.52im.net/space-uid-1.html)
 * @version 1.0
 * @since 4.3
 */
public class LogoutInfo
{
	/** 用户的uid */
	private String uid = null;

	/**
	 * 用于记录用户的登出设备信息，比如手机型号等
	 * （本字段主要用于信息记录和传递，非核心字段，可为null） */
	private String deviceInfo = null;

	/**
	 * 设备系统类型.
	 * <p>
	 * 当前约定：0-Android客户端，1-iOS客户端，2-Web客户端 .
	 * <p>
	 * <font color="#ff0000">注意：请尽量确保本字段的含义与 {@link LoginInfo2}中的osType字段相同。</font>
	 */
	private String osType = null;

	/**
	 * 是否不清除Device token（0-清除，1-不清除，默认清除）。
	 * 目前用于iOS端在APP被强杀时，提交注销登陆时可以告诉服务端不需要清除设备id，以便能收到APNs推送。
	 *
	 * @since 7.1
	 */
	private String dontClearDeviceToken = null;

	public String getUid()
	{
		return uid;
	}

	public void setUid(String uid)
	{
		this.uid = uid;
	}

	public String getDeviceInfo()
	{
		return deviceInfo;
	}

	public void setDeviceInfo(String deviceInfo)
	{
		this.deviceInfo = deviceInfo;
	}

	public String getOsType()
	{
		return osType;
	}

	public void setOsType(String osType)
	{
		this.osType = osType;
	}

	public String getDontClearDeviceToken()
	{
		return dontClearDeviceToken;
	}

	public void setDontClearDeviceToken(String dontClearDeviceToken)
	{
		this.dontClearDeviceToken = dontClearDeviceToken;
	}

	/**
	 * 当前登陆信息是否是从Android设备上发出的。
	 *
	 * @return true表示是，否则不是
	 * @since 4.3
	 */
	public boolean isAndroid()
	{
		return LoginInfo2.OS_TYPE_ANDRIOD.equals(this.osType);
	}

	/**
	 * 当前登陆信息是否是从iOS设备上发出的。
	 *
	 * @return true表示是，否则不是
	 * @since 4.3
	 */
	public boolean isIOS()
	{
		return LoginInfo2.OS_TYPE_IOS.equals(this.osType);
	}

	/**
	 * 当前登陆信息是否是从Web端上发出的。
	 *
	 * @return true表示是，否则不是
	 * @since 4.3
	 */
	public boolean isWeb()
	{
		return LoginInfo2.OS_TYPE_WEB.equals(this.osType);
	}

	public boolean isDontClearDeviceToken()
	{
		return "1".equals(this.dontClearDeviceToken);
	}
}
